//node 后端服务器
const StuApi = require('./api')
const bodyParser = require('body-parser')
const express = require('express')
const app = express()

// 设置全局路由拦截，用于处理CORS跨域请求
app.all('*', function (req, res, next) {
  // 允许跨域访问，设置允许的来源为任意
  res.header('Access-Control-Allow-Origin', '*');
  // 设置允许跨域请求的请求头
  res.header('Access-Control-Allow-Headers', 'content-type');
  // 设置允许跨域请求的方法
  res.header('Access-Control-Allow-Methods', 'DELETE,PUT,POST,GET,OPTIONS');
  // 如果是OPTIONS预检请求，则直接返回200状态码
  if (req.method.toLowerCase() === 'options') res.send(200);
  // 否则继续执行后续的路由处理
  else next();
})

// 使用json解析中间件，将请求体解析为JSON格式
app.use(bodyParser.json())
// 使用urlencoded解析中间件，将请求体解析为键值对形式，extended参数设置为false以禁用qs库的扩展行为
app.use(bodyParser.urlencoded({ extended: false }))

// 配置后端API路由，处理以'/api'开头的所有请求
app.use('/api', StuApi)

// 监听3000端口，使应用程序在该端口上运行
app.listen(3000)
// 输出监听成功的消息，确认应用程序已正确启动
console.log('success listen at port:3000......')
